import 'NewUserBootDto.dart';
import 'PopularityInfo.dart';
import 'WealthInfo.dart';

class UserInfo {
  UserInfo({
    this.userId,
    this.headPortraitsUrl,
    this.nickname,
    this.gender,
    this.age,
    this.roomNo,
    this.roomRole,
    this.roleName,
    this.roomName,
    this.roomIcon,
    this.isCollect,
    this.micIndex,
    this.micName,
    this.giftPrice,
    this.blackList,
    this.addRoleTime,
    this.memberLevel,
    this.memberEmblem,
    this.nobleRankCode,
    this.nobleName,
    this.emblemSimpleUrl,
    this.emblemUrl,
    this.nobleBackgroundUrl,
    this.isEnterForbid,
    this.isChatForbid,
    this.enterDate,
    this.micFrameUrl,
    this.micVoiceWaveUrl,
    this.chatBubbleUrl,
    this.admissionEffectUrl,
    this.admissionEffectVapUrl,
    this.admissionRoomEffectVapUrl,
    this.admissionDrivingEffectVapUrl,
    this.userBrandUrl,
    this.guardIconUrl,
    this.nicknamePendantUrl,
    this.nicknamePendantH5Url,
    this.nicknamePendantAdUrl,
    this.nicknamePendantIosUrl,
    this.managerPermit,
    this.prohibitType,
    this.prohibitTimeLimit,
    this.roomVipType,
    this.roomNewVipType,
    this.vipStatus,
    this.vipUrl,
    this.vipNewUrl,
    this.vipSimpleUrl,
    this.vipNewSimpleUrl,
    this.entranceIcon,
    this.entranceIconV2,
    this.fanGroupIconConfig,
    this.hasOwnGuild,
    this.wealthInfo,
    this.popularityInfo,
    this.richerInfo,
    this.userExtInfo,
    this.host,
    this.appType,
    this.newUserBootDTO,
  });

  UserInfo.fromJson(dynamic json) {
    userId = json['userId'];
    headPortraitsUrl = json['headPortraitsUrl'];
    nickname = json['nickname'];
    gender = json['gender'];
    age = json['age'];
    roomNo = json['roomNo'];
    roomRole = json['roomRole'];
    roleName = json['roleName'];
    roomName = json['roomName'];
    roomIcon = json['roomIcon'];
    isCollect = json['isCollect'];
    micIndex = json['micIndex'];
    micName = json['micName'];
    giftPrice = json['giftPrice'];
    blackList = json['blackList'];
    addRoleTime = json['addRoleTime'];
    memberLevel = json['memberLevel'];
    memberEmblem = json['memberEmblem'];
    nobleRankCode = json['nobleRankCode'];
    nobleName = json['nobleName'];
    emblemSimpleUrl = json['emblemSimpleUrl'];
    emblemUrl = json['emblemUrl'];
    nobleBackgroundUrl = json['nobleBackgroundUrl'];
    isEnterForbid = json['isEnterForbid'];
    isChatForbid = json['isChatForbid'];
    enterDate = json['enterDate'];
    micFrameUrl = json['micFrameUrl'];
    micVoiceWaveUrl = json['micVoiceWaveUrl'];
    chatBubbleUrl = json['chatBubbleUrl'];
    admissionEffectUrl = json['admissionEffectUrl'];
    admissionEffectVapUrl = json['admissionEffectVapUrl'];
    admissionRoomEffectVapUrl = json['admissionRoomEffectVapUrl'];
    admissionDrivingEffectVapUrl = json['admissionDrivingEffectVapUrl'];
    userBrandUrl = json['userBrandUrl'];
    guardIconUrl = json['guardIconUrl'];
    nicknamePendantUrl = json['nicknamePendantUrl'];
    nicknamePendantH5Url = json['nicknamePendantH5Url'];
    nicknamePendantAdUrl = json['nicknamePendantAdUrl'];
    nicknamePendantIosUrl = json['nicknamePendantIosUrl'];
    managerPermit = json['managerPermit'];
    prohibitType = json['prohibitType'];
    prohibitTimeLimit = json['prohibitTimeLimit'];
    roomVipType = json['roomVipType'];
    roomNewVipType = json['roomNewVipType'];
    vipStatus = json['vipStatus'];
    vipUrl = json['vipUrl'];
    vipNewUrl = json['vipNewUrl'];
    vipSimpleUrl = json['vipSimpleUrl'];
    vipNewSimpleUrl = json['vipNewSimpleUrl'];
    entranceIcon = json['entranceIcon'];
    entranceIconV2 = json['entranceIconV2'];
    fanGroupIconConfig = json['fanGroupIconConfig'];
    hasOwnGuild = json['hasOwnGuild'];
    wealthInfo = json['wealthInfo'] != null ? WealthInfo.fromJson(json['wealthInfo']) : null;
    popularityInfo = json['popularityInfo'] != null ? PopularityInfo.fromJson(json['popularityInfo']) : null;
    richerInfo = json['richerInfo'];
    userExtInfo = json['userExtInfo'];
    host = json['host'];
    appType = json['appType'];
    newUserBootDTO = json['newUserBootDTO'] != null ? NewUserBootDto.fromJson(json['newUserBootDTO']) : null;
  }

  int? userId;
  String? headPortraitsUrl;
  String? nickname;
  int? gender;
  dynamic age;
  String? roomNo;
  int? roomRole;
  dynamic roleName;
  String? roomName;
  String? roomIcon;
  bool? isCollect;
  dynamic micIndex;
  dynamic micName;
  dynamic giftPrice;
  bool? blackList;
  dynamic addRoleTime;
  int? memberLevel;
  dynamic memberEmblem;
  dynamic nobleRankCode;
  dynamic nobleName;
  dynamic emblemSimpleUrl;
  dynamic emblemUrl;
  dynamic nobleBackgroundUrl;
  dynamic isEnterForbid;
  dynamic isChatForbid;
  String? enterDate;
  dynamic micFrameUrl;
  dynamic micVoiceWaveUrl;
  dynamic chatBubbleUrl;
  dynamic admissionEffectUrl;
  dynamic admissionEffectVapUrl;
  dynamic admissionRoomEffectVapUrl;
  dynamic admissionDrivingEffectVapUrl;
  dynamic userBrandUrl;
  dynamic guardIconUrl;
  dynamic nicknamePendantUrl;
  dynamic nicknamePendantH5Url;
  dynamic nicknamePendantAdUrl;
  dynamic nicknamePendantIosUrl;
  bool? managerPermit;
  dynamic prohibitType;
  dynamic prohibitTimeLimit;
  int? roomVipType;
  int? roomNewVipType;
  dynamic vipStatus;
  dynamic vipUrl;
  dynamic vipNewUrl;
  dynamic vipSimpleUrl;
  dynamic vipNewSimpleUrl;
  String? entranceIcon;
  String? entranceIconV2;
  dynamic fanGroupIconConfig;
  dynamic hasOwnGuild;
  WealthInfo? wealthInfo;
  PopularityInfo? popularityInfo;
  dynamic richerInfo;
  String? userExtInfo;
  bool? host;
  int? appType;
  NewUserBootDto? newUserBootDTO;

  Map<String, dynamic> toJson() {
    final map = <String, dynamic>{};
    map['userId'] = userId;
    map['headPortraitsUrl'] = headPortraitsUrl;
    map['nickname'] = nickname;
    map['gender'] = gender;
    map['age'] = age;
    map['roomNo'] = roomNo;
    map['roomRole'] = roomRole;
    map['roleName'] = roleName;
    map['roomName'] = roomName;
    map['roomIcon'] = roomIcon;
    map['isCollect'] = isCollect;
    map['micIndex'] = micIndex;
    map['micName'] = micName;
    map['giftPrice'] = giftPrice;
    map['blackList'] = blackList;
    map['addRoleTime'] = addRoleTime;
    map['memberLevel'] = memberLevel;
    map['memberEmblem'] = memberEmblem;
    map['nobleRankCode'] = nobleRankCode;
    map['nobleName'] = nobleName;
    map['emblemSimpleUrl'] = emblemSimpleUrl;
    map['emblemUrl'] = emblemUrl;
    map['nobleBackgroundUrl'] = nobleBackgroundUrl;
    map['isEnterForbid'] = isEnterForbid;
    map['isChatForbid'] = isChatForbid;
    map['enterDate'] = enterDate;
    map['micFrameUrl'] = micFrameUrl;
    map['micVoiceWaveUrl'] = micVoiceWaveUrl;
    map['chatBubbleUrl'] = chatBubbleUrl;
    map['admissionEffectUrl'] = admissionEffectUrl;
    map['admissionEffectVapUrl'] = admissionEffectVapUrl;
    map['admissionRoomEffectVapUrl'] = admissionRoomEffectVapUrl;
    map['admissionDrivingEffectVapUrl'] = admissionDrivingEffectVapUrl;
    map['userBrandUrl'] = userBrandUrl;
    map['guardIconUrl'] = guardIconUrl;
    map['nicknamePendantUrl'] = nicknamePendantUrl;
    map['nicknamePendantH5Url'] = nicknamePendantH5Url;
    map['nicknamePendantAdUrl'] = nicknamePendantAdUrl;
    map['nicknamePendantIosUrl'] = nicknamePendantIosUrl;
    map['managerPermit'] = managerPermit;
    map['prohibitType'] = prohibitType;
    map['prohibitTimeLimit'] = prohibitTimeLimit;
    map['roomVipType'] = roomVipType;
    map['roomNewVipType'] = roomNewVipType;
    map['vipStatus'] = vipStatus;
    map['vipUrl'] = vipUrl;
    map['vipNewUrl'] = vipNewUrl;
    map['vipSimpleUrl'] = vipSimpleUrl;
    map['vipNewSimpleUrl'] = vipNewSimpleUrl;
    map['entranceIcon'] = entranceIcon;
    map['entranceIconV2'] = entranceIconV2;
    map['fanGroupIconConfig'] = fanGroupIconConfig;
    map['hasOwnGuild'] = hasOwnGuild;
    if (wealthInfo != null) {
      map['wealthInfo'] = wealthInfo!.toJson();
    }
    if (popularityInfo != null) {
      map['popularityInfo'] = popularityInfo!.toJson();
    }
    map['richerInfo'] = richerInfo;
    map['userExtInfo'] = userExtInfo;
    map['host'] = host;
    map['appType'] = appType;
    if (newUserBootDTO != null) {
      map['newUserBootDTO'] = newUserBootDTO!.toJson();
    }
    return map;
  }
}